package main

import (
	"fmt"
)

func main() {
	// 第一题
	fmt.Println(fn1(10))
	// 第二题
	fn2(12)

}

func fn1(n int) int {
	if n < 1 {
		panic("参数不能小于1")
	} else if n == 1 {
		return 1
	}
	return n * fn1(n-1)
}

func fn2(n int) {
	last := ""
	for i := n; i >= 1; i-- {
		last += fmt.Sprintf("%d ", i)
	}
	l := len(last)
	s := ""
	for i := 1; i < n; i++ {
		s = ""
		for j := i; j >= 1; j-- {
			s += fmt.Sprintf("%d ", j)
		}
		fmt.Printf("%*s\n", l, s)
	}
	fmt.Println(last)
}
